<?php
/**
 * CRUD de Categorias Blog
 * 
 * @author André Coura <andreccls@gmail.com>
 * @since 01/07/2012
 */

include("defaultAdmin.php");
require_once(PASTA_DAO."CategoriaBlog.class.php");

//verificação se o usuário esta logado, cado contrário, este será redirecionado para o login.
if($objUsrSession->getIdUsuario() == 0){
	HttpUtil::vaiPara("login.php?msg=1");
}

/**
 * VERIFICAÇÃO DA TELA QUE SERÁ EXIBIDA
 */
 if(!isset($_GET["id"]))
	$id = "";
else
	$id = (int)$_GET["id"];
if(!is_numeric($id) || $id == 0 || $id=="") 
	$id = null;
$objCtrlSmarty->assign("id_categoria",$id);
$objCatBlog = new CategoriaBlog();
if(!isset($_GET["a"]))
	$_GET["a"] = "";
switch ($_GET["a"]){
	case 'form':
		if(isset($id)){
			//busco os dados do banco
			$arrCampos = $objCatBlog->buscaCampos($id);
			//seto no formulário os valores dos campos automaticamente
			foreach ($arrCampos as $nomeCampo => $fieldData) {
				$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
			}
		}
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formCategoriaBlog.tpl"));
		break;
	case 'post':
		try{
			//validação preguiça de fazer em javascript
			$arrErros = array();
			if($_POST["titulo_categoria"]=="")
				$arrErros["MENS_ERRO_CAT"] = "O Título da Categoria é obrigatório";
			//fim validação dos dados
			if(count($arrErros) == 0){
				$id = (int)$_POST["id_categoria"];
				if(!is_numeric($id) || $id == 0 || $id=="") 
					$id = null;
				$objCatBlog->alterar($id,$_POST,null);
				HttpUtil::vaiPara("CrudCategoriaBlog.php?msg=3");
			}else{
				//loop para preencher, em caso de erro, o formulário
				foreach ($_POST as $nomeCampo => $fieldData) {
					$objCtrlSmarty->assign($nomeCampo,utf8_encode($fieldData));
				}
				//loop para setar os lugares com os erros
				foreach ($arrErros as $nomeErro => $conteudo) {
					$objCtrlSmarty->assign($nomeErro,$conteudo);
				}
				//exibo o form aqui
				$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/formCategoriaBlog.tpl"));
			}
		}catch(CustonException $e){
			HttpUtil::vaiPara("CrudCategoriaBlog.php?msg=5");
		}
		break;
	case 'excluir':
		$objCatBlog->deletar($id);
		HttpUtil::vaiPara("CrudCategoriaBlog.php?msg=4");
		break;
	
	case 'lista':
	default:
		if(isset($_GET["p"]) && $_GET["p"]!="" && is_numeric($_GET["p"]))
			$pagAtual = (int)$_GET["p"];
		else 
			$pagAtual = 0;
			
		$objCtrlSmarty->assign("pagAtual", $pagAtual);
		$objCtrlSmarty->assign("CONTEUDO_ADMIN",$objCtrlSmarty->fetch(TPLS_FILE."admin/listaCategoriaBlog.tpl"));
		break;
}

//definição da estrutura do admin <cabecalho, corpo e rodape>
$objCtrlSmarty->assign("ESTRUTURA",$objCtrlSmarty->fetch(TPLS_FILE."admin/adminEstrutura.tpl"));

//ultima coisa que deve ter no arquivo, serve para imprimir a tela
$objCtrlSmarty->display(TPLS_FILE."index.tpl");
?>